package edzest.basic;

public class J06_Patterns {

	public static void main(String[] args) {
		// 반복문을 이용해서 다양한 패턴 출력하기
		// 패턴1 - 테스트1
		/*System.out.println("1 2 3 4 5 6");
		System.out.println("1 2 3 4 5 6");
		System.out.println("1 2 3 4 5 6");
		System.out.println("1 2 3 4 5 6");
		System.out.println("1 2 3 4 5 6");
		System.out.println("1 2 3 4 5 6");*/
		
		int i = 1;
		while( i <= 3 ){
			System.out.print( i + " " );
			++i;
		}
		System.out.println();
		System.out.println();
		
		i = 1;
		int j = 1;
		while( j <= 6 ){
			while( i <= 6 ){
				System.out.print( i + " " );
				++i;
			}
			System.out.println();
			i = 1;
			++j;
		}
		System.out.println();
		
		// 위를 for문으로
		i = 1;
		j = 1;
		for( ; j <= 6; ++j){
			for( ; i <= 6; ++i){
				System.out.print( i + " ");
			}
			System.out.println();
			i = 1;
		}
		System.out.println();
		
		i = 1;
		j = 1;
		while( j <= 6 ){
			while( i <= j ){
				System.out.print( i + " " );
				++i;
			}
			System.out.println();
			i = 1;
			++j;
		}
		System.out.println();
		
		// 위에거 for문으로
		i = 1;
		j = 1;
		for( ; j <= 6; ++j){
			for( ; i <= j; ++i){
				System.out.print( i + " ");
			}
			System.out.println();
			i = 1;
		}
		System.out.println();
		
		i = 1;
		j = 6;
		while( j >= 1 ){
			while( i <= j ){
				System.out.print( i + " " );
				++i;
			}
			System.out.println();
			i = 1;
			--j;
		}
		System.out.println();
		
		// 위에거 for문으로
		i = 1;
		j = 6; // j를 i로 했더니 하나도 안찍힘
		for( ; j >= 1; --j){
			for( ; i <= j; ++i ){
				System.out.print( i + " " );
			}
			System.out.println();
			i = 1;
		}
		System.out.println();
		
		i = 1;
		while( i <= 6 ){
			if( i != 6 )
				System.out.print( " " );
			else
				System.out.println( i );
			++i;
		}
		System.out.println();
		
//		i = 6;
//		while( i >= 1 ){
//			if( i > 6 ) // 6일때 654321 4일때 4321
//				System.out.print( " " );
//			else
//				System.out.print( i );
//			--i;
//		}
//		이 주석을 아래처럼 6번 돌림, 바뀌는 수를 j로 바꿔서		
		
		
		i = 6;
		j = 1;
		while(j <= 6){
			while( i >= 1 ){
				if( i > j ) // j는 1 ~ 6으로 변환
					System.out.print( "  " );
				else
					System.out.print( i + " " );
				--i;
			}
			System.out.println();
			++j;
			i = 6;
		}
		System.out.println();
		
		// 위에거 for문으로
		i = 6;
		j = 1;
		for( ; j <= 6; ++j){
			for( ; i >= 1; --i ){
				if(i > j)
					System.out.print("  ");
				else
					System.out.print(i + " ");
			}
			System.out.println();
			i = 6;
		}
		System.out.println();
	
		// 아래거 원본
		for( int k = 1; k <= 6; ++k){
			if( k >= 3 )
				System.out.print( (k-2) + " " );
			else
				System.out.print( "  " );
		}
		System.out.println();
		
		// 위에서 바뀌는 부분을 변수로 만들어줌  if( k >= 3 ),  (k-2)
		for(int m = 1; m <= 6; ++m){
			for( int k = 1; k <= 6; ++k){
				if( k >= m )
					System.out.print( (k - (m - 1)) + " " );
				else
					System.out.print( "  " );
			}
			System.out.println();
		}
	}

}
